// 	定义一个数值和字符串的联合类
const arr: [number, string] = [11, "bkpp"]
console.log(arr);

// 定义一个类型断言
let someValue = "12312311"
let strLength1: number = (someValue as string).length;
console.log(strLength1);

//  定义一个 void 实现函数的无返回值
function fun(num: number, arr: number): void {
    console.log(num + arr);
}
fun(5, 10)

//  定义一个 never 的函数
function error(message: string): never {
    throw new Error(message);
}


// 	定义函数时， 分别实现参数类型、剩余参数、默认参数
function foo(name: number, ...age: number []) {
    console.log(name, age);
}
foo(1,2,3);

// 2种方式定义一个数组
let bk: (number | string)[] = ['e', 1]
let pp: Array<string | number> = ['e', 1]

// Ts定义一个求和函数;例Add(2,8,9,6,5,8,7),返回结果45
function bbx(bkpp: number[]) {
    let pcl: number = 0
    bkpp.forEach((value: number) => {
        pcl += value
    })
    return pcl
}
console.log(bbx([2, 8, 9, 6, 5, 8, 7]));

//•	补零
function bbx1(arr: number[]) {
    let newArr: (number | string)[] = [];
    arr.forEach((item: number) => {
        if (item < 10) {
            newArr.push("0"+item)
        } else {
            newArr.push(item)
        }
    })
    return newArr
}
console.log(bbx1([2,15,48,3,6]));

//•	数字（乘5）添加：
let bbx2: (string | number)[] = ['a', 'c', 6, 'e', 5, 3, 'd']
function func(bbx2: (string | number)[]) {
    let Listitem: (string | number)[] = []
    bbx2.forEach((value: (string | number)) => {
        if (typeof value === 'number') {
            Listitem.push(value * 5)
        }
    })
    return Listitem
}
console.log(func(bbx2));